﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace NNote.DocumentModel {
	public interface IDocumentViewer {
		Document Document { get; }
		Control Control { get; }

		bool Modified { set; }

		int LineCount { get; }
		void GotoLine(int line);

		void Save(StreamWriter filename);
		void OnSettingsChanged();

		string[] GetSupportedClipboardFormats();

		event EventHandler SelectionChanged;
		int SelectionLength { get; }

		void SelectAll();

		void Cut();
		void Copy();
		void Paste();

		bool CanUndo { get; }
		event EventHandler UndoChanged;
		void Undo();
		string UndoActionName { get; }

		bool CanRedo { get; }
		event EventHandler RedoChanged;
		void Redo();
		string RedoActionName { get; }
	}
}
